<?php 
if ( ! function_exists('db_to_th'))
{
function db_to_th($datetime = '', $time = FALSE ,$format = 'F')
	{
		if(!$datetime) return '-';
		if($format == 'F')
		{
			$month_th = array( 1 =>'มกราคม',2 => 'กุมภาพันธ์',3=>'มีนาคม',4=>'เมษายน',5=>'พฤษภาคม',6=>'มิถุนายน',7=>'กรกฏาคม',8=>'สิงหาคม',9=>'กันยายน',10=>'ตุลาคม',11=>'พฤศจิกายน',12=>'ธันวาคม');
		}
		else
		{
			$month_th = array( 1 =>'ม.ค.',2 => 'ก.พ.',3=>'มี.ค.',4=>'เม.ย',5=>'พ.ค.',6=>'มิ.ย',7=>'ก.ค.',8=>'ส.ค.',9=>'ก.ย.',10=>'ต.ค.',11=>'พ.ย.',12=>'ธ.ค.');
		}
		
		$datetime = mysql_to_unix($datetime);
		
		$r = date('d', $datetime).' '.$month_th[date('n', $datetime)].' '.(date('Y', $datetime) + 543); 

		if($time)
		{
				$r .= ' - '.date('H', $datetime).':'.date('i', $datetime);
		}
	
		return $r;
	}
}

if ( ! function_exists('unix_to_human_date'))
{
	function unix_to_human_date($time = '')
	{
		return date('Y', $time).'-'.date('m', $time).'-'.date('d', $time);
	}
}

function date_to_unix($date)
{
	return mysql_to_unix(date_to_mysql($date,TRUE));
}

function unix_to_date($date)
{
	$date = isset($date) ? $date : now();
	return mysql_to_date(unix_to_human_date($date),TRUE);
}

function date_to_mysql($date,$is_date_thai = FALSE)
{
	list($d,$m,$y) = explode('/', $date);
	$y = ($is_date_thai) ? $y - 543 : $y;
	return $y.'-'.$m.'-'.$d;
}

function mysql_to_date($date,$is_date_thai = FALSE)
{
	@list($y,$m,$d) = @explode('-', $date);
	$y = ($is_date_thai) ? $y + 543 : $y;
	return @$date ? $d.'/'.$m.'/'.$y : NULL;
}

if(!function_exists('get_current_year_budget'))
{
	function get_current_year_budget($is_thai = false)
	{
		$year = (date('m') >= 10) ? date('Y')+1 : date('Y');
		return $is_thai ? ($year + 543) : $year;
	}
}

if(!function_exists('get_year_option'))
{
	function get_year_option($start, $plus = 0)
	{
		$year = (get_current_year_budget(true)) + $plus;
		$data = array();
		for($year;$year >= $start;$year--)
		{
			$data[$year] = $year;
		}
		return $data;
	}
}

if(!function_exists('get_month'))
{
	function get_month()
	{
		return array('10'=>'ตุลาคม','11'=>'พฤศจิกายน','12'=>'ธันวาคม','1'=>'มกราคม','2'=>'กุมภาพันธ์','3'=>'มีนาคม','4'=>'เมษายน','5'=>'พฤษภาคม','6'=>'มิถุนายน','7'=>'กรกฏาคม','8'=>'สิงหาคม','9'=>'กันยายน');
	}
}

if(!function_exists('month'))
{
	function month($month)
	{
		$m = array('1'=>'มกราคม','2'=>'กุมภาพันธ์','3'=>'มีนาคม','4'=>'เมษายน','5'=>'พฤษภาคม','6'=>'มิถุนายน','7'=>'กรกฏาคม','8'=>'สิงหาคม','9'=>'กันยายน','10'=>'ตุลาคม','11'=>'พฤศจิกายน','12'=>'ธันวาคม');
		return $m[number_format($month)];
	}
}

if ( ! function_exists('db_to_my'))
{
function db_to_my($datetime = '')
	{
		if(!$datetime) return '-';
		$month_th = array( 1 =>'ม.ค.',2 => 'ก.พ.',3=>'มี.ค.',4=>'เม.ย',5=>'พ.ค.',6=>'มิ.ย',7=>'ก.ค.',8=>'ส.ค.',9=>'ก.ย.',10=>'ต.ค.',11=>'พ.ย.',12=>'ธ.ค.');
		$r = $month_th[date('n', $datetime)].' '.substr((date('Y', $datetime) + 543),-2); 
		return $r;
	}
}

function date_budget($date, $is_date_thai = FALSE)
{
	if($date)
	{		
		list($y, $m, $d) = explode('-', $date);
		$y = ($is_date_thai) ? $y - 543 : $y;
		if($m >= 10)
		{
			return array($y.'-10-01', ($y+1).'-09-30'); 
		}
		else
		{
			return array(($y-1).'-10-01', $y.'-09-30'); 
		}
	}	
}

function year_budget($year, $is_date_thai = FALSE)
{
	if($year)
	{		
		$year = ($is_date_thai) ? $year - 543 : $year;
		return array(($year-1).'-10-01', $year.'-09-30'); 
	}	
}

function fix_budget($y,$m, $is_date_thai = FALSE)
{
		$y = ($is_date_thai) ? $y - 543 : $y;
		if($m >= 10)
		{
			return array($y.'-10-01', $y.'-'.$m.'-'.date('t',mysql_to_unix($y.'-'.$m.'-1'))); 
		}
		else
		{
			return array(($y-1).'-10-01', $y.'-'.$m.'-30'); 
		}
}

function get_year_budget($date)
{
	list($year, $month, $day) = explode('-', $date);
	return ($month >= 10) ? $year : ($year - 1);
	
}

function rest_month($date_record)
{
	list($year, $month, $date) = explode('-', $date_record);
	$plus = ($date >= 15) ? 1 : 0;
	if($month >= 10)
	{
		return 12 - ($month - 10) - $plus;
	}
	else
	{
		return 12 - ($month + 2) - $plus;
	}
}

function DateDiff($strDate1,$strDate2)
{
return (strtotime($strDate2) - strtotime($strDate1))/  ( 60 * 60 * 24 );  // 1 day = 60*60*24
}

function expire_date($fund_id)
{
	$CI =& get_instance();
	$user = login_data();
	$balance_date = $CI->db->getOne('select max(voucher_date) from vouchers where is_balance = 1 and fund_id = '.$fund_id.' and agency_id = '.$user['agency_id']);
	
	$date = $balance_date[0].'-'.$balance_date[1].'-'.get_one('value','settings','id',$fund_id);
	//echo pre_dump($balance_date);
	return (date('d')>get_one('value','settings','id',$fund_id))?date("Y-m-d",strtotime(date("Y-m-d", strtotime($date)) . " +1 month")):$date;
}

function last_voucher_date($fund_id)
{
	if((!empty($_GET['year']))&&(!empty($_GET['month'])))
	{
		$data[0] = $_GET['year'] - 543;
		$data[1] = $_GET['month'];
		convert_budget_year($data[0],$data[1]);
	}
	else
	{
		$CI =& get_instance();
		$user = login_data();
		$last_date =  $CI->db->getOne('select max(voucher_date) from vouchers where is_balance = 1 and fund_id = '.$fund_id.' and agency_id = '.$user['agency_id']);
		if($last_date)
		{
			$last_date = explode('-',$last_date);
			$data[0] = $last_date[0];
			$data[1] = $last_date[1];
		}
		else
		{
			$data[0] = date('Y');
			$data[1] = date('m');
		
		}
	}
	$data[2] = $data[0];
	$data[3] = $data[1];
	convert_budget_year($data[2],$data[3],TRUE);
	return $data;
}

function convert_budget_year(&$year,&$month,$reverse = FALSE)
{
	$i = ($reverse)?1:-1;
	if ($month >= 10)
	{
		$year = $year + $i;
	}
}


?>